package com.tensquare.friend.server;

import com.tensquare.friend.dao.FriendRepository;
import com.tensquare.friend.dao.NoFriendRepository;
import com.tensquare.friend.pojo.Friend;
import com.tensquare.friend.pojo.NoFriend;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


@Service
public class FriendService {
    @Autowired
    private FriendRepository friendRepository;

    @Autowired
    private NoFriendRepository noFriendRepository;
    /**
     * 添加喜欢好友
     * islike 0 单向喜欢 1 双向喜欢
     *
     * @param myid
     * @param friendid
     * @return 0 重复添加/ 1 添加成功
     */
    @Transactional
    public int addFriend(String myid, String friendid) {
        // 判断如果用户已经添加了这个好友，则不进行任何操作，返回0
        if (this.friendRepository.selectCount(myid, friendid) > 0) {
            return 0;
        }

        // 向喜欢表中添加记录
        Friend friend = new Friend();
        friend.setUserid(myid);
        friend.setFriendid(friendid);
        // 先初始化为0，单项喜欢
        friend.setIslike("0");
        // 保存
        this.friendRepository.save(friend);

        // 判断对方是否已经喜欢自己了。如果是。则设置为1，把双方都设置islike属性设置为1
//        if (this.friendRepository.findByUseridAndFriendid(friendid, myid) != null) {
        if (this.friendRepository.selectCount(friendid, myid) > 0) {
            // 已经喜欢了
            this.friendRepository.updateLike(myid, friendid, "1");
            this.friendRepository.updateLike(friendid, myid, "1");
        }
        return 1;
    }

    /**
     * 删除好友
     */
    @Transactional
    public void deleteFriend(String userid, String friendid){
        // 删除好友
        this.friendRepository.deleteFriend(userid, friendid);
        // 然后把对方和自己对islike互相喜欢状态改成0 单向喜欢
        this.friendRepository.updateLike(friendid, userid, "0");
        // 并向不喜欢的数据表添加数据
        NoFriend noFriend = new NoFriend();
        noFriend.setUserid(userid);
        noFriend.setFriendid(friendid);
        this.noFriendRepository.save(noFriend);
    }

}
